﻿using DAL.Entity;
using System;
using System.Collections.Generic;
using System.Data.Objects;
using System.Linq;
using System.Text;

namespace DAL.Persistencia
{
    public class FaturaSupplierPagamentoDAL
    {

        private NewTierraEntities Con;

        public FaturaSupplierPagamentoDAL()
        {
            Con = new NewTierraEntities();
        }


        public void inserir(Fatura_Supplier_Pagamento fsp)
        {
            try
            {               
                Con.AddToFatura_Supplier_Pagamento(fsp);
                Con.SaveChanges();
            }
            catch
            {
                throw;
            }

        }


        public Int32 PegarMaxGrupoPagamento()
        {
            try
            {

                int max;

                if (Con.Fatura_Supplier_Pagamento.Max(x => x.grupo) == null)
                {
                    max = 0;
                }
                else
                {
                    max = Convert.ToInt32(Con.Fatura_Supplier_Pagamento.Max(x => x.grupo)) + 1;
                }

                return max;
            }
            catch
            {
                throw;
            }

        }



        public List<Fatura_Supplier_Pagamento> PesquisarTodosPagosPorNumeroContaPorData(int idConta, DateTime data)
        {
            try
            {
                return Con.Fatura_Supplier_Pagamento.Where(s => s.id_Conta == idConta && EntityFunctions.TruncateTime(s.data.Value) == data.Date).ToList();
            }
            catch
            {
                throw;
            }

        }


        public Fatura_Supplier_Pagamento PesquisarPorId(int id)
        {
            try
            {
                return Con.Fatura_Supplier_Pagamento.Where(s => s.id == id).SingleOrDefault();
            }
            catch
            {
                throw;
            }

        }


        public Fatura_Supplier_Pagamento PesquisarPorIdGrupo(int idGrupo)
        {
            try
            {
                return Con.Fatura_Supplier_Pagamento.Where(s => s.grupo == idGrupo).SingleOrDefault();
            }
            catch
            {
                throw;
            }

        }
               
    }
}
